package Stream_Study.MiddleMethod;

import java.util.ArrayList;
import java.util.Collections;
import java.util.stream.Stream;

public class StreamDemo7 {
    public static void main(String[] args) {
        /*
            distinct        元素去重，依赖(hashcode()和equals()方法)
            concat          合并a和b两个流为一个流（尽可能保证两个流中的数据类型一致，如果不一致，会自动提升为父类类型）

            注意1：中间方法，返回新的Stream流，原来的Stream流只能使用一次，建议使用链式编程
            注意2：修改Stream流中的数据，不会影响原来集合或者数组中的数据
         */

        ArrayList<String> list1 = new ArrayList<>();
        Collections.addAll(list1,"张无忌", "雏鹤爱", "雏鹤爱", "雏鹤爱", "樱岛麻衣", "小鸟游六花", "张三", "张三丰");

        ArrayList<String> list2 = new ArrayList<>();
        Collections.addAll(list2, "时崎狂三", "四糸乃", "夜刀神十香");

        //底层利用hashSet集合进行去重
        //list1.stream().distinct().forEach(System.out::println); // 去重

        Stream.concat(list1.stream().distinct(),list2.stream()).forEach(System.out::println);
    }
}
